Genetic programming is a form of genetic algorithm where the states of the individual elemnts in a population are some form of program structure. This is often represented as a syntax tree, decision tree, or similar structural form. Mutations and breeding are often specially designed to make well formed programs, and the evaluation function usually involves running the programover test cases.
Used on Chap. 6: page 126; Chap. 9: page 188; Chap. 14: page 329; Chap. 18: page 448